In certain data communications applications, a customer supplies data bits to a modem connected to a subscriber loop of a synchronous communications network. The modem "bundles" the customer's data bits and "ancillary bits" into symbols which are transported through the subscriber loop. The ancillary bits are bits which provide a variety of functions, such as error-monitoring, control of remote equipment, etc., and also include dummy bits, i.e., bits which are inserted into an otherwise unfilled bit position to maintain the operation of communications equipment and then are discarded in the receiver. At the remote end of the loop, another modem unbundles the symbols back into customer data and ancillary bits, the latter being extracted prior to delivery of the customer bits to one or more customer-designated destinations.
To extract the ancillary bits from a bit stream of customer and ancillary bits, the bit stream is formatted into frames. Each frame includes a combination of customer and ancillary bits with each customer and ancillary bit inserted into a predefined bit position in a frame. To delineate one frame from another, each frame is identified by a framing bit, and the sequence of such bits in a succession of frames forms a predefined pattern of bit values. At the receiver, this pattern is detected and then the customer and ancillary bits are identified and processed.
One problem in data communications relates to acquiring frame synchronization or "framing". While a variety of framing schemes are known, they generally operate upon the detection of predetermined bit patterns extending over a succession of frames. As a result, acquiring framing requires a time interval extending over multiple frames. In certain data applications, this time interval is too long.
Another problem in data applications is that the customer's data rate may vary about some nominal expected rate. This problem exists in certain High-Rate Digital Subscriber Line (HDSL) applications, where the customer's data clock is "free-running" and, therefore, may vary from a nominal data rate expected by communications equipment connected to the subscriber loop and hereinafter referred to as the expected rate. As a result, at any particular time, the customer may be supplying more or less digital data per unit time than is nominally expected. To compensate for the overflow or underflow of customer data per unit time relative to that which is expected, one solution has been to incorporate "stuff" and "delete" bits into each frame.
The stuff and delete bits are inserted into predetermined additional bit positions in each frame and are either customer data bits or ancillary bits depending on the variation of the customer's data rate relative to the expected rate. More specifically, in the absence of such variation, i.e., the customer data rate equals the expected rate, a stuff bit is an ancillary bit. However, if the customer data rate exceeds the expected rate, then the stuff bits are customer bits. Similarly, each delete bit is a customer bit when the customer data rate equals the expected rate but is an ancillary bit when the customer data rate is less than the expected rate. Since stuff and delete bits must be delivered to the customer when they are customer bits and must be extracted from the bit stream delivered to the customer when they are ancillary bits, a mechanism for identifying whether the stuff and delete bits in each frame are customer or ancillary bits must be provided.
While the use of stuff and delete bits has provided a satisfactory solution to the problem of asynchronous customer and line clocks, there are problems in correctly identifying whether the stuff and delete bits are customer or ancillary bits in noisy communications channels.
In light of the foregoing, it would be extremely desirable if a technique could be devised which could provide rapid framing and robust stuff and delete bit identification in noisy communications channels.